HL7 Message Parser

Parse HL7 v2.x healthcare messages (ADT, ORU, ORM) into readable structure. Decode pipe-delimited segments into patient info, visit details, observations. Export to CSV or JSON.

1.0.0
Version
Auth
Batch

Upload .hl7 / .txt / .msg file

Max 5MB

Requires login • 1 credit

HL7 Message Parser Tutorial

What is HL7?

HL7 (Health Level Seven) is the messaging standard that powers most of healthcare IT. When a patient is admitted, a lab result comes back, or an order is placed, a pipe-delimited HL7 v2 message flies between EHR systems like this:

MSH|^~\&|APP|FAC|REC|RECFAC|20260420120000||ADT^A01|MSG001|P|2.5
PID|1||PATID1234||DOE^JOHN||19610615|M
PV1|1|I|2000^2012^01||||DOC123

Each line is a segment (MSH, PID, PV1...), fields split by |, components by ^. Unreadable raw, but it's the lifeblood of hospital interop.

What Gets Extracted

  • Message type (ADT^A01 → "Admit/Visit Notification")
  • Patient: ID, name, DOB, sex, address
  • Visit: class (inpatient/outpatient), location, attending doctor, admit time
  • Source/destination systems: sending and receiving apps/facilities
  • All segments: every field broken out to CSV

Supported Segments

Built-in names for: MSH, EVN, PID, PD1, NK1, PV1, PV2, OBX, OBR, ORC, DG1, AL1, IN1, GT1, NTE, MSA, ERR, FT1, SCH, and more. Unknown segments still parse — just without a friendly name.

Custom Separators

Some systems use non-standard delimiters. The tool reads them from the MSH header automatically:

  • Field separator (position 4 of MSH)
  • Component separator (position 5)
  • Repeat separator
  • Escape character
  • Subcomponent separator

Privacy

HL7 messages often contain PHI. Everything is parsed in memory and discarded after the response. Nothing is stored or logged beyond anonymized hit counts. For serious PHI work, consider running this locally.